package com.itfreer.bpm.config.entity;

import org.springframework.beans.BeanUtils;

import java.io.Serializable;
import java.util.LinkedHashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.Index;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import com.itfreer.bpm.config.entity.BpmTaskConfigEntity;
import com.itfreer.form.api.JdbcBaseEntity;
/**
 * 流程节点配置数据库表
 * @author gj
 *
 */
@Entity(name = "bpm_task_config")
@Table(indexes = { @Index(name = "act_task_actid", columnList = "act_id"),
		@Index(name="act_task_defid", columnList="act_defid"),
		@Index(name="act_task_defid", columnList="task_defid"),
		@Index(name="act_task_defname", columnList="task_defname")})
public class JdbcBpmTaskConfigEntity implements JdbcBaseEntity<BpmTaskConfigEntity>, Serializable  {
	private static final long serialVersionUID = 4673423560339517162L;
	
	
	@Column(name = "act_id")
	private String actid;
	
	@Column(name = "act_defid")
	private String actdefid;
	
	@Column(name = "task_order")
	private Integer taskorder;
	
	@Id
	@Column(name = "task_id")
	private String taskid;
	
	@Column(name = "task_defid")
	private String taskdefid;
	
	@Column(name = "task_defname")
	private String taskdefname;
	
	@Column(name = "task_tl")
	private Double tasktl;
	
	@Column(name = "task_group")
	private String taskgroup;
	

	
	@Column(name = "user_express")
	private String userexpress;
	
	@Column(name = "user_cusfld")
	private String usercusfld;
	
	@Column(name = "user_role")
	private String userrole;
	
	@Column(name = "prj_tab")
	private String prjtab;
	
	@Column(name = "prj_show")
	private String prjshow;
	
	@Column(name = "his_config")
	private String hisconfig;
	
	@Column(name = "not_jb")
	private Integer notjb;
	
	@Column(name = "not_jbmb")
	private String notjbmb;
	
	@Column(name = "not_yb")
	private Integer notyb;
	
	@Column(name = "not_ybmb")
	private String notybmb;
	
	@Column(name = "not_db")
	private Integer notdb;
	
	@Column(name = "not_dbmb")
	private String notdbmb;
	
	@Column(name = "not_xt")
	private Integer notxt;
	
	@Column(name = "not_email")
	private Integer notemail;
	
	@Column(name = "not_meg")
	private Integer notmeg;
	@Column(name = "not_userdef")
	private String notuserdef;
	
	@Column(name = "rem_use")
	private Integer remuse;
	
	@Column(name = "rem_create")
	private String remcreate;
	
	@Column(name = "rem_befor")
	private String rembefor;
	
	@Column(name = "rem_out")
	private String remout;
	
	@Column(name = "rem_mb")
	private String remmb;
	
	@Column(name = "rem_xt")
	private Integer remxt;
	
	@Column(name = "rem_email")
	private Integer rememail;
	
	@Column(name = "rem_msg")
	private Integer remmsg;
	@Column(name = "rem_userdef")
	private String remuserdef;
	
	@Column(name = "opt_tj")
	private Integer opttj;
	
	@Column(name = "opt_th")
	private Integer optth;
	
	@Column(name = "opt_ch")
	private Integer optch;
	
	@Column(name = "opt_cx")
	private Integer optcx;
	
	@Column(name = "opt_jh")
	private Integer optjh;
	
	@Column(name = "opt_gq")
	private Integer optgq;
	
	@Column(name = "opt_jg")
	private Integer optjg;
	
	@Column(name = "opt_tz")
	private Integer opttz;
	
	@Column(name = "opt_bc")
	private Integer optbc;
	
	/**
	 * 用户自定义通知模板
	 * @return
	 */
	public String getNotuserdef() {
		return notuserdef;
	}

	/**
	 * 用户自定义通知模板
	 * @return
	 */
	public void setNotuserdef(String notuserdef) {
		this.notuserdef = notuserdef;
	}


	/**
	 * 用户自定义催办模板
	 * @return
	 */
	public String getRemuserdef() {
		return remuserdef;
	}
	/**
	 * 用户自定义催办模板
	 * @return
	 */
	public void setRemuserdef(String remuserdef) {
		this.remuserdef = remuserdef;
	}
	
	/**
	 * 流程id
	 * @return
	 */
	public  String getActid() {
		return actid;
	}
	
	/**
	 * 流程id
	 * @return
	 */
	public  void setActid(String actid) {
		this.actid = actid;
	}
	
	/**
	 * 流程实例id
	 * @return
	 */
	public  String getActdefid() {
		return actdefid;
	}

	/**
	 * 流程实例id
	 * @return
	 */
	public void setActdefid(String actdefid) {
		this.actdefid = actdefid;
	}
	
	/**
	 * 排序
	 * @return
	 */
	public  Integer getTaskorder() {
		return taskorder;
	}
	
	/**
	 * 数据库主键
	 * @return
	 */
	public  void setTaskorder(Integer taskorder) {
		this.taskorder = taskorder;
	}
	
	/**
	 * 数据库主键
	 * @return
	 */
	public  String getTaskid() {
		return taskid;
	}
	
	/**
	 * 节点定义id
	 * @return
	 */
	public  void setTaskid(String taskid) {
		this.taskid = taskid;
	}
	
	/**
	 * 节点定义id
	 * @return
	 */
	public  String getTaskdefid() {
		return taskdefid;
	}
	
	/**
	 * 节点定义名称
	 * @return
	 */
	public  void setTaskdefid(String taskdefid) {
		this.taskdefid = taskdefid;
	}
	
	/**
	 * 节点定义名称
	 * @return
	 */
	public  String getTaskdefname() {
		return taskdefname;
	}
	
	/**
	 * 当前环节限时
	 * @return
	 */
	public  void setTaskdefname(String taskdefname) {
		this.taskdefname = taskdefname;
	}
	
	/**
	 * 当前环节限时
	 * @return
	 */
	public  Double getTasktl() {
		return tasktl;
	}
	
	/**
	 * 
	 * @return
	 */
	public  void setTasktl(Double tasktl) {
		this.tasktl = tasktl;
	}
	
	/**
	 * 环节所属于分组
	 * @return
	 */
	public  String getTaskgroup() {
		return taskgroup;
	}
	
	/**
	 * 环节所属于分组
	 * @return
	 */
	public  void setTaskgroup(String taskgroup) {
		this.taskgroup = taskgroup;
	}
	
	
	
	/**
	 * 用户解析表达
	 * @return
	 */
	public  String getUserexpress() {
		return userexpress;
	}
	
	/**
	 * 用户解析表达
	 * @return
	 */
	public  void setUserexpress(String userexpress) {
		this.userexpress = userexpress;
	}
	
	/**
	 * 项目中自定义表达式字段
	 * @return
	 */
	public  String getUsercusfld() {
		return usercusfld;
	}
	
	/**
	 * 项目中自定义表达式字段
	 * @return
	 */
	public  void setUsercusfld(String usercusfld) {
		this.usercusfld = usercusfld;
	}
	
	/**
	 * 任务执行角色
	 * @return
	 */
	public  String getUserrole() {
		return userrole;
	}
	
	/**
	 * 任务执行角色
	 * @return
	 */
	public  void setUserrole(String userrole) {
		this.userrole = userrole;
	}
	
	/**
	 * 项目tab选项卡配置
	 * @return
	 */
	public  String getPrjtab() {
		return prjtab;
	}
	
	/**
	 * 项目tab选项卡配置
	 * @return
	 */
	public  void setPrjtab(String prjtab) {
		this.prjtab = prjtab;
	}
	
	/**
	 * 项目表单逻辑控制
	 * @return
	 */
	public  String getPrjshow() {
		return prjshow;
	}
	
	/**
	 * 项目表单逻辑控制
	 * @return
	 */
	public  void setPrjshow(String prjshow) {
		this.prjshow = prjshow;
	}
	
	/**
	 * 审批历史配置
	 * @return
	 */
	public  String getHisconfig() {
		return hisconfig;
	}
	
	/**
	 * 审批历史配置
	 * @return
	 */
	public  void setHisconfig(String hisconfig) {
		this.hisconfig = hisconfig;
	}
	
	/**
	 * 任务是否通知经办人
	 * @return
	 */
	public  Integer getNotjb() {
		return notjb;
	}
	
	/**
	 * 任务是否通知经办人
	 * @return
	 */
	public  void setNotjb(Integer notjb) {
		this.notjb = notjb;
	}
	
	/**
	 * 任务是否通知经办模板
	 * @return
	 */
	public  String getNotjbmb() {
		return notjbmb;
	}
	
	/**
	 * 任务是否通知经办模板
	 * @return
	 */
	public  void setNotjbmb(String notjbmb) {
		this.notjbmb = notjbmb;
	}
	
	/**
	 * 任务是否通知已办理人
	 * @return
	 */
	public  Integer getNotyb() {
		return notyb;
	}
	
	/**
	 * 任务是否通知已办理人模板
	 * @return
	 */
	public  void setNotyb(Integer notyb) {
		this.notyb = notyb;
	}
	
	/**
	 * 任务是否通知已办理人模板
	 * @return
	 */
	public  String getNotybmb() {
		return notybmb;
	}
	
	/**
	 * 任务是否通知待办理人
	 * @return
	 */
	public  void setNotybmb(String notybmb) {
		this.notybmb = notybmb;
	}
	
	/**
	 * 任务是否通知待办理人
	 * @return
	 */
	public  Integer getNotdb() {
		return notdb;
	}
	
	/**
	 * 任务是否通知待办理人模板
	 * @return
	 */
	public  void setNotdb(Integer notdb) {
		this.notdb = notdb;
	}
	
	/**
	 * 任务是否通知待办理人模板
	 * @return
	 */
	public  String getNotdbmb() {
		return notdbmb;
	}
	
	/**
	 * 
	 * @return
	 */
	public  void setNotdbmb(String notdbmb) {
		this.notdbmb = notdbmb;
	}
	
	/**
	 * 通知方式系统
	 * @return
	 */
	public  Integer getNotxt() {
		return notxt;
	}
	
	/**
	 * 通知方式系统
	 * @return
	 */
	public  void setNotxt(Integer notxt) {
		this.notxt = notxt;
	}
	
	/**
	 * 通知方式邮箱
	 * @return
	 */
	public  Integer getNotemail() {
		return notemail;
	}
	
	/**
	 * 通知方式邮箱
	 * @return
	 */
	public  void setNotemail(Integer notemail) {
		this.notemail = notemail;
	}
	
	/**
	 * 通知方式短信
	 * @return
	 */
	public  Integer getNotmeg() {
		return notmeg;
	}
	
	/**
	 * 通知方式短信
	 * @return
	 */
	public  void setNotmeg(Integer notmeg) {
		this.notmeg = notmeg;
	}
	
	/**
	 * 是否启用催办
	 * @return
	 */
	public  Integer getRemuse() {
		return remuse;
	}
	
	/**
	 * 是否启用催办
	 * @return
	 */
	public  void setRemuse(Integer remuse) {
		this.remuse = remuse;
	}
	
	/**
	 * 任务创建后多长时间发出催办消息
	 * @return
	 */
	public  String getRemcreate() {
		return remcreate;
	}
	
	/**
	 * 任务创建后多长时间发出催办消息
	 * @return
	 */
	public  void setRemcreate(String remcreate) {
		this.remcreate = remcreate;
	}
	
	/**
	 * 即将超时多长时间时，进行催办 
	 * @return
	 */
	public  String getRembefor() {
		return rembefor;
	}
	
	/**
	 * 即将超时多长时间时，进行催办 
	 * @return
	 */
	public  void setRembefor(String rembefor) {
		this.rembefor = rembefor;
	}
	
	/**
	 * 已超时多长时间时，进行催办
	 * @return
	 */
	public  String getRemout() {
		return remout;
	}
	
	/**
	 * 已超时多长时间时，进行催办
	 * @return
	 */
	public  void setRemout(String remout) {
		this.remout = remout;
	}
	
	/**
	 * 催办模板
	 * @return
	 */
	public  String getRemmb() {
		return remmb;
	}
	
	/**
	 * 催办模板
	 * @return
	 */
	public  void setRemmb(String remmb) {
		this.remmb = remmb;
	}
	
	/**
	 * 催办通知方式系统通知
	 * @return
	 */
	public  Integer getRemxt() {
		return remxt;
	}
	
	/**
	 * 催办通知方式系统通知
	 * @return
	 */
	public  void setRemxt(Integer remxt) {
		this.remxt = remxt;
	}
	
	/**
	 * 催办通知方式邮箱通知
	 * @return
	 */
	public  Integer getRememail() {
		return rememail;
	}
	
	/**
	 * 催办通知方式邮箱通知
	 * @return
	 */
	public  void setRememail(Integer rememail) {
		this.rememail = rememail;
	}
	
	/**
	 * 催办通知方式短信通知
	 * @return
	 */
	public  Integer getRemmsg() {
		return remmsg;
	}
	
	/**
	 * 催办通知方式短信通知
	 * @return
	 */
	public  void setRemmsg(Integer remmsg) {
		this.remmsg = remmsg;
	}
	
	/**
	 * 提交操作
	 * @return
	 */
	public  Integer getOpttj() {
		return opttj;
	}
	
	/**
	 * 提交操作
	 * @return
	 */
	public  void setOpttj(Integer opttj) {
		this.opttj = opttj;
	}
	
	/**
	 * 退回操作
	 * @return
	 */
	public  Integer getOptth() {
		return optth;
	}
	
	/**
	 * 退回操作
	 * @return
	 */
	public  void setOptth(Integer optth) {
		this.optth = optth;
	}
	
	/**
	 * 撤回
	 * @return
	 */
	public  Integer getOptch() {
		return optch;
	}
	
	/**
	 * 撤回
	 * @return
	 */
	public  void setOptch(Integer optch) {
		this.optch = optch;
	}
	
	/**
	 * 撤销
	 * @return
	 */
	public  Integer getOptcx() {
		return optcx;
	}
	
	/**
	 * 撤销
	 * @return
	 */
	public  void setOptcx(Integer optcx) {
		this.optcx = optcx;
	}
	
	/**
	 * 激活
	 * @return
	 */
	public  Integer getOptjh() {
		return optjh;
	}
	
	/**
	 * 激活
	 * @return
	 */
	public  void setOptjh(Integer optjh) {
		this.optjh = optjh;
	}
	
	/**
	 * 挂起
	 * @return
	 */
	public  Integer getOptgq() {
		return optgq;
	}
	
	/**
	 * 挂起
	 * @return
	 */
	public  void setOptgq(Integer optgq) {
		this.optgq = optgq;
	}
	
	/**
	 * 解挂
	 * @return
	 */
	public  Integer getOptjg() {
		return optjg;
	}
	
	/**
	 * 解挂
	 * @return
	 */
	public  void setOptjg(Integer optjg) {
		this.optjg = optjg;
	}
	
	/**
	 * 跳转
	 * @return
	 */
	public  Integer getOpttz() {
		return opttz;
	}
	
	/**
	 * 跳转
	 * @return
	 */
	public  void setOpttz(Integer opttz) {
		this.opttz = opttz;
	}
	
	/**
	 * 保存
	 * @return
	 */
	public  Integer getOptbc() {
		return optbc;
	}
	
	/**
	 * 保存
	 * @return
	 */
	public  void setOptbc(Integer optbc) {
		this.optbc = optbc;
	}

	@Override
	public void from(BpmTaskConfigEntity t) {
		BeanUtils.copyProperties(t, this);

		
	}

	@Override
	public void setId(String arg0) {
		this.setTaskid(arg0);
		
	}

	@Override
	public BpmTaskConfigEntity toEntity() {
		BpmTaskConfigEntity toEntity = new BpmTaskConfigEntity();
		BeanUtils.copyProperties(this, toEntity);
		return toEntity;
	}
}
